/*题目：
 * 小明购买了一台新电脑，该电脑使用 TypeC 接口，他已经有了一个 USB接口的充电器和数据线，
   为了确保新电脑可以使用现有的USB接口充电器和数据线，他购买了一个TypeC到 USB的扩展坞。
   请你使用适配器模式设计并实现这个扩展坞系统，
   确保小明的新电脑既可以通过扩展坞使用现有的 USB接口充电线和数据线，也可以使用TypeC接口充电。
 * 输入：题目包含多行输入，第一行输入一个数字 N （1 < N <= 20)，表示后面有 N组测试数据。
        之后 N行都是一个整数，1表示使用电脑本身的 TypeC接口，2表示使用扩展坞的 USB接口充电。
 * 输出：根据每行输入，输出相应的充电信息。
 * 示例：
 *      输入：3
             1
             2
             1
        输出：TypeC
            USB Adapter
            TypeC
 * */

#include <iostream>
using namespace std;

class USB{
public:
    virtual void charge()=0;
};

class TypeC{
public:
    virtual void chargeTypeC()=0;
};

//适配器类
class TypeCAdapter:public USB{
private:
    TypeC* typeC;
public:
    TypeCAdapter(TypeC* typeC):typeC(typeC){}
    void charge() override{
        typeC->chargeTypeC();
    }
};

//电脑类，使用 TypeC接口
class Computer:public TypeC{
public:
    void chargeTypeC() override{
        cout<<"Type C"<<endl;
    }
};

//适配器充电器类，使用USB接口
class AdapterCharger:public USB{
public:
    void charge() override{
        cout<<"USB Adapter"<<endl;
    }
};

int main(){
    int num=0;
    cin>>num;
    cin.ignore();
    for (int i = 0; i < num; ++i) {
        int choice;
        cin>>choice;

        if (choice==1){
            TypeC* computer=new Computer();
            computer->chargeTypeC();
            delete computer;
        }
        else if (choice==2){
            USB* usbAdapter=new AdapterCharger();
            usbAdapter->charge();
            delete usbAdapter;
        }
    }
    return 0;
}